1. Field of the Invention
The present invention relates, in general, to the field of 2-dimensional (2D) data analysis, interpolation and filtering, and to video and image processing. More specifically, it pertains to image rescaling and interpolation. It has uses in television (TV) and set-top box (STB) products and applications, among others. It can also be applied to rescaling of color graphs of functions of two variables. Other applications will be apparent to those of ordinary skill in the art.
2. Relevant Background
Digital signal processing is often applied to sampled phenomena, whether 1-dimensional (1D) data (such as voltages) or 2D (such as pixel values of gray scale or color images). The general processes for data modification (for example: noise removal, data compression, edge detection, rescaling, interpolation, etc.) often involve filtering (mathematically, local weighted averages, i.e. convolution with an appropriate kernel), interpolation (inferring unknown function values at inputs between two existing input values), and other operations.
In the particular application of image rescaling (typically enlargement of some or all of the image, but also compression), several methods of interpolation are well known in the art: nearest neighbor (level step) interpolation, bilinear, bicubic, and hqx families, among others.
When filtering or interpolating data, discontinuities in the data can produce the spurious phenomena of ringing, i.e. oscillations of output values around the true or desired values, and overshoot, i.e. output values beyond the maxima/minima of the true or desired values. A well-known example of this is the Gibb's phenomena at a step discontinuity of 1D data.
In high quality image rescaling, ringing and overshoot effects are typically created by using multi-tap interpolation kernels. In some cases, ringing and overshoot are good for resealed image results, e.g. high frequency reconstruction. In other cases, these artifacts should be avoided, e.g. ringing and overshoot effects along clear and sharp edges can be disadvantageous.
Many current methods of image interpolation often involve just 1D interpolation methods applied on a row-by-row (or column-by-column) basis to the image data, which often can create “staircase” artifacts. Further, current 2D methods do not allow for user controlled variation in the amount of ringing and/or overshoot that is kept in the image.
So, independent controllability of ringing and overshoot effects is advantageous in high quality image rescaling. Especially important is that such controllability be computationally efficient. Finally, the two dimensionality implicit in image data should be taken into account during image processing.